#include <stdio.h>
#include <assert.h>

// 此代码是strncpy的模拟实现
// strncpy的功能为: 根据以str1为目标,str2为源,根据设置的字符个数复制相应的字符
// strcpy和strncpy的区别: strcpy会将源字符串全部复制进去,而strncpy只会复制设置好的字符数

char* mystrncpy (char* des , const char* src , size_t num)
{

    assert (des && src) ;

    char* ret = des ;

    for (int i = 0 ; i < num ; i++)
    {

        des [i] = src [i] ;

    }

    return ret ;

}

int main ()
{

    char arr1 [] = "abcdef" ;

    char arr2 [20] = "xxxxxxxxxxxxxxxxxxx" ;

    mystrncpy (arr2 , arr1 , 3) ;

    printf ("%s" , arr2) ;

    return 0 ;
    
}